package com.xxx.userservice;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

public class CodeGenerator {
    public static void main(String[] args) {
        FastAutoGenerator.create("jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=Asia/Shanghai", "root", "123456")
                // 全局配置
                .globalConfig(builder -> {
                    builder.author("guwq")      // 作者
                            .outputDir(System.getProperty("user.dir") + "/user-service/src/main/java") // 输出路径
                            .disableOpenDir();     // 禁止打开输出目录
                })
                // 包配置
                .packageConfig(builder -> {
                    builder.parent("com.xxx.userservice")       // 父包名
                            .entity("pojo.entity")    // entity包名
                            .service("service")        // service包名
                            .serviceImpl("service.impl");   // service.impl包名
//                            .pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir") + "/user-service/src/main/resources/mapper")); // XML路径
                })
                // 策略配置
                .strategyConfig(builder -> {
                    builder.addInclude("t_user")  // 需要生成的表名
                            .addTablePrefix("t_")         // 表前缀过滤
                            // 实体类策略
                            .entityBuilder()
                            .enableLombok()                 // 启用Lombok
                            .enableTableFieldAnnotation()   // 字段注解
                            // Mapper策略
                            .mapperBuilder()
                            .disableMapperXml()           // 不生产mapper的xml文件
//                            .enableBaseResultMap()          // 生成ResultMap
                            // Service策略
                            .serviceBuilder()
                            .formatServiceFileName("%sService") // 去除Service接口的"I"前缀
                            // Controller策略
                            .controllerBuilder()
                            .disable();                  // 禁止生成Controller
//                            .enableRestStyle();          // 生成@RestController
                })
                // 模板引擎
                .templateEngine(new FreemarkerTemplateEngine())
                .execute();
    }
}